gtrnctr: Welcome to gbfile api.
authoroliskoli <oliskoli>
Fri, 7 Mar 2008 23:42:57 +0000 (23:42 +0000)
committeroliskoli <oliskoli>
Fri, 7 Mar 2008 23:42:57 +0000 (23:42 +0000)
gtrnctr.c

index 07425d417bddf87927c29ffc3b8f4127093b9220..12446e91b9ed51701c466a300c79c81ba19034a7 100644 (file)
--- a/gtrnctr.c
+++ b/gtrnctr.c
@@ -22,7 +22,7 @@
 #include "defs.h"
 #include "xmlgeneric.h"
 
-static FILE *ofd;
+static gbfile *ofd;
 static waypoint *wpt_tmp;
 static route_head *trk_head;
 
@@ -77,13 +77,13 @@ gtc_rd_deinit(void)
 static void
 gtc_wr_init(const char *fname)
 {
-        ofd = xfopen(fname, "w", MYNAME);
+        ofd = gbfopen(fname, "w", MYNAME);
 }
 
 static void
 gtc_wr_deinit(void)
 {
-        fclose(ofd);
+        gbfclose(ofd);
 }
 
 static int gtc_indent_level;
@@ -91,38 +91,34 @@ static void
 gtc_write_xml(int indent, const char *fmt, ...)
 {
        va_list args;
-       int i;
+
        va_start(args, fmt);
 
        if (indent < 0) gtc_indent_level--;
 
-       for (i = 0; i < gtc_indent_level; i++) {
-               fputs("  ", ofd);
-       }
-
-       vfprintf(ofd, fmt, args);
+       gbfprintf(ofd, "%*s", gtc_indent_level * 2, "");
+       gbvfprintf(ofd, fmt, args);
 
        if (indent > 0) gtc_indent_level++;
 
        va_end(args);
-
 }
 
 static void
 gtc_waypt_pr(const waypoint *wpt)
 {      
 #if 0
-       fprintf(ofd, "            <Trackpoint>\n");
-       fprintf(ofd, "                <Position>\n");
-       fprintf(ofd, "                    <Latitude>%.5f</Latitude>\n", wpt->latitude);
-       fprintf(ofd, "                    <Longitude>%.5f</Longitude>\n", wpt->longitude);
+       gbfprintf(ofd, "            <Trackpoint>\n");
+       gbfprintf(ofd, "                <Position>\n");
+       gbfprintf(ofd, "                    <Latitude>%.5f</Latitude>\n", wpt->latitude);
+       gbfprintf(ofd, "                    <Longitude>%.5f</Longitude>\n", wpt->longitude);
        if (wpt->altitude != unknown_alt) {
-               fprintf(ofd, "                    <Altitude>%.3f</Altitude>\n", wpt->altitude);
+               gbfprintf(ofd, "                    <Altitude>%.3f</Altitude>\n", wpt->altitude);
        }
-       fprintf(ofd, "                </Position>\n");
-       fprintf(ofd, "                ");
+       gbfprintf(ofd, "                </Position>\n");
+       gbfprintf(ofd, "                ");
        xml_write_time(ofd, wpt->creation_time, "Time");
-       fprintf(ofd, "            </Trackpoint>\n");
+       gbfprintf(ofd, "            </Trackpoint>\n");
 #else
        gtc_write_xml(1, "<Trackpoint>\n");
        if (wpt->creation_time) {
@@ -208,12 +204,12 @@ void
 gtc_write(void)
 {
 #if 0
-       fprintf(ofd, "<?xml version=\"1.0\" ?>\n");
-       fprintf(ofd, "<History xmlns=\"http://www.garmin.com/xmlschemas/ForerunnerLogbook\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.garmin.com/xmlschemas/ForerunnerLogbook http://www.garmin.com/xmlschemas/ForerunnerLogbookv1.xsd\" version=\"1\">\n");
-       fprintf(ofd, "    <Run>\n");
+       gbfprintf(ofd, "<?xml version=\"1.0\" ?>\n");
+       gbfprintf(ofd, "<History xmlns=\"http://www.garmin.com/xmlschemas/ForerunnerLogbook\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.garmin.com/xmlschemas/ForerunnerLogbook http://www.garmin.com/xmlschemas/ForerunnerLogbookv1.xsd\" version=\"1\">\n");
+       gbfprintf(ofd, "    <Run>\n");
        track_disp_all(gtc_hdr, gtc_ftr, gtc_waypt_pr);
-       fprintf(ofd, "    </Run>\n");
-       fprintf(ofd, "</History>\n");
+       gbfprintf(ofd, "    </Run>\n");
+       gbfprintf(ofd, "</History>\n");
 #else
        gtc_write_xml(0, "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n");
        gtc_write_xml(1, "<TrainingCenterDatabase\nxmlns=\"http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v1\"\nxmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\nxsi:schemaLocation=\"http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v1\nhttp://www.garmin.com/xmlschemas/TrainingCenterDatabasev1.xsd\">\n");
@@ -234,7 +230,7 @@ gtc_write(void)
        }
        gtc_fake_hdr();
        track_disp_all(gtc_hdr, gtc_ftr, gtc_waypt_pr);
-       gtc_write_xml(1, "</Lap>\n");
+       gtc_write_xml(-1, "</Lap>\n");
        gtc_write_xml(-1, "</Run>\n");
        gtc_write_xml(-1, "</Running>\n");
        gtc_write_xml(0, "<Biking />\n");